Distributed means of organizing an arbitrarily large number of computers

ABSTRACT

A technique for organizing a plurality of computers such that message broadcast, content searching, and computer identification of the entire collection or a subset of the entire collection may be performed quickly without the use of a controlling computer. The technique describes the creation, operation, and maintenance of a connection scheme by which each computer in the collection appears to be the top level of a hierarchical array. The maintenance of this hierarchical connection scheme allows one to many communications throughout the collection of computers to scale geometrically rather than linearly.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. patent application Ser. No.09/887,391, entitled “Distributed Means of Organizing an ArbitrarilyLarge Number of Computers,” filed Jun. 22, 2001.

TECHNICAL FIELD

This invention relates to the fields of computer communications andcomputer networking.

BACKGROUND

A means of coordinating a plurality of computers physically connected toa network is disclosed. The disclosure provides a rapid broadcast andsearch of the hosts using distributed control.

Such a system is an improvement over existing centrally controlledcoordination in the areas of security, attack resistance, robustness,speed, and scalability.

Physical vs. Logical Organization

The invention may be used by any computer possessing a means tocommunicate one to another with all other computers to be coordinated.

The invention works by arranging the physically connected computers intoa virtual hierarchy that may be efficiently searched and to whichmessages may be broadcast.

Prior Art—Centralized Control

A collection of computers possessing the ability to communicate one toanother may be coordinated by a controlling computer. The controllingcomputer can maintain a list of network addresses of the computercollection. The controlling computer can maintain a list describing thecontents available on each computer in the collection. The controllingcomputer can also maintain a list a names or other identifyingcharacteristics of each computer in the collection.

The controlling computer may broadcast a message to all the coordinatedcomputers by reading its list of network addresses and creating andsending a message to each computer in the list. The controlling computermay respond to a query regarding the contents available in thecollection of computers by searching its list of contents. When acontent match is found, the controlling computer can provide the networkaddress of the computer possessing the content.

The controlling computer may respond to a query regarding the name orother identifying characteristic of a computer in the collection bysearching its list of names or other identifying characteristics of eachcomputer in the collection. When a match to the computer name or otheridentifying characteristic is found, the controlling computer canprovide the network address of the computer in the collection matchingthe desired name or other identifying characteristic.

Disadvantages of Centralized Control

1. Scalability

2. Security

3. Failure sensitivity

Scalability

A controlling computer can coordinate a finite number of computers. Theamount of computing power increases linearly with the number ofcomputers to be coordinated.

At some point, the controlling computer will be unable to coordinate anymore computers and the collection of computers must cease increasing.

Security

All communications between the collection of computer is coordinated bythe controlling computer. A successful security attack on thecontrolling computer will disable all coordinated communications withthe collection of computers.

Failure Sensitivity

Similarly, a software failure or hardware failure on the singlecontrolling computer can disable coordinated communications with theentire collection of computers.

Prior Art—Hierarchical Organizations

A logical communication hierarchy of computers may be created with asingle host at the top of the logical hierarchy and two or morecomputers at the next level. Each one of the computers at the secondlevel is logically connected to two or more computers. Each of thecomputers at the third level is logically connected to two or morecomputers, and so on.

In the simplest case each computer is connected to a single host goingup the hierarchy and to two computers going down the hierarchy. The toplevel of the hierarchy has a single computer. The second level has twocomputers. The third level has four computers. The fourth level haseight computers. Each successive logical level contains the next powerof 2 number of computers.

The total number of computers in the hierarchy is the sum of thecomputers at each of the N levels in the hierarchy. For example in thesimple sample just described, the fifth level would contain 32 computersand the entire hierarchy would contain 63 computers.

The tenth level of a ten level hierarchy would contain 1024 computersand the entire hierarchy would contain 2047 computers. The equationdescribing the total number of computers in such a network is 2*(2 powerN)−1. Where N is the number of levels.

Advantage of Hierarchical Organizations

A virtual hierarchy such as that described above may broadcast a messagefrom the top level computer to all computers in the hierarchy is anamount of time equivalent to:

N*(average message transit time).

For example, in an Internet environment, the message delay might be 10msec. To broadcast a message to all computers in a ten level hierarchycontaining 2047 computers would take 100 msec.

To broadcast a message to all computers in a twenty level hierarchycontaining 2,097,151 computers would take only 200 msec.

Without a hierarchy, serially sending a message to 2 million computerswould require 2,097,151*(average message transit time).

Disadvantages of Hierarchical Organization

1. Inflexibility

2. Insecurity

3. Failure sensitivity

Inflexibility

A hierarchy is great for broadcasting a message from a constant fixedcomputer to a hierarchy of constant fixed computers. Should a messagerequire broadcasting from any other computer than that at the top of thehierarchy, other mechanisms must be used such as passing the messageupward to the top and then broadcasting it downward from the top of thehierarchy.

Insecurity

A hierarchy is progressively more vulnerable to disruption the closer tothe top of the hierarchy one gets. In fact, if an attack were launchedon the top computer of the hierarchy rendering it inoperable, the entirehierarchy would be rendered inoperable.

Failure Sensitivity

Similarly, each computer in a hierarchy is connected to two or morecomputers beneath it. Each of them is connected to two or more computersand so on. Should a single computer in a hierarchy fail, all thecomputer connected beneath it in the hierarchy would be unable tocommunicate.

SUMMARY OF THE INVENTION

Some of the objectives of the invention are to provide a collection ofcomputers with:

-   -   (a) the ability to perform one to many broadcast originating        from any computer in the collection without requiring a fixed        hierarchical organization;    -   (b) the ability to search all computers in the collection for        specific content without requiring a central controlling        computer;    -   (c) the ability to locate a specific computer in the collection        using a name or other identifying characteristic without        requiring a central controlling computer;    -   (d) the ability to self organize itself so broadcast and        searching may be performed in an optimal manner;    -   (e) the ability to self organize itself in the presence of        changing computer network addresses so broadcast and searching        may be performed in an optimal manner;    -   (f) the ability to continue broadcast and searching functions in        the presence of a security attack which disables a plurality of        computers in the collection.    -   (g) the ability to repair itself and continue broadcast and        searching functions in the presence of simultaneous failure of a        plurality of computers in the collection.

Further objectives will become apparent from a consideration of theensuing description and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present invention, reference ismade to the following detailed description taken in conjunction with theaccompanying drawings wherein:

FIGS. 1A to 1B show a typical physical means of computers communicatingone to another compared to a logical means of communicating for the samecomputers.

FIG. 2 shows a typical embodiment of the invention using a quadrilateralconfiguration for the collection of computers.

FIGS. 3A and 3B show a computer's neighbors and the linking of neighborsin the collection of computers.

FIG. 4 shows a typical embodiment of the invention using a hexagonalconfiguration for the collection of computers.

FIGS. 5A to 5C show the virtual hierarchy created by a typicalembodiment of the invention using a quadrilateral configuration for thecollection of computers.

FIG. 6 illustrates the rapid increase in the number of computers reachedwith the addition of each concentric polygon.

FIGS. 7A and 7B show a new computer being added to the collection ofcomputers.

FIGS. 8A and 8B shows a non-optimized view of a quadrilateralconfiguration for the collection of computers and an optimized view ofthe same collection of computers.

FIGS. 9A to 9T show the self organizing states of a quadrilateralconfiguration for the collection of computers.

FIGS. 10A to 10C show a view of a quadrilateral configuration with threemissing computers.

FIG. 11 shows the organization of computers with a subset of computersperforming caching.

REFERENCE NUMERALS IN DRAWINGS

The following table identifies the various numbers in the drawings thathave like parts associated with them throughout this disclosure.

Reference Number Title 10 logical middle of the collection of computers11 top computer of a hierarchy 12, 13, 14, 15, 16, 17, 18, 19, 20,computers 21, 22, 23 24 physical means of communication 25 logical meansof communication 26 radial 27 indirect radial 28 found computer 29disabled computer 30 collection edge 31 logical connection 32 newcomputer 33 caching computer 34 searching computer 40 head 41 right hand42 toe 43 left hand 44 WEBcast server 45 WEBcast player

DETAILED DESCRIPTION

Reference is now made to the Drawings wherein like reference charactersdenote like or similar parts throughout the various Figures.

Referring then to FIGS. 1A, 1B, 2 and 3, each computer 10, 12, 13, 14,15 in the collection possesses a physical means 24 to communicate one toanother as illustrated in FIG. 1A. The physical means of communicationmay be reorganized to produce a logical means to communicate 25 one toanother as illustrated in FIG. 1B.

In an Internet embodiment, FIG. 1A would consist of computers physicallyconnected via local area networks, routers and the Internet. In FIG. 1Bthe network would consist of computers logically connected via InternetProtocol (“IP”) addresses.

A preferred embodiment is directed to the logical configuration of acomputer network, irrespective of the particular physical means ofcommunication between computers in the network. A typical embodiment ofthe invention in a quadrilateral configuration is illustrated in FIG. 2.The logical middle 10 of the collection possesses a logical means tocommunicate 25 to four neighbor computers 12, 13, 14, 15 that comprise aconcentric square. Each computer in the collection possesses a logicalmeans to communicate 25 to four neighbors. The concentric squareconsisting of four computers 12, 13, 14, 15 is in turn logicallyconnected with the concentric square consisting of eight computers 16,17, 18, 19, 20, 21, 22, 23. The collection of computers ends at thecollection edge 30.

Referring to FIG. 3A, The logical means to communicate 25 is defined bya neighbor relationship. Each computer possesses links to fourneighbors. FIG. 3A illustrates each computer's “neighbors” as“neighbor0” 40, “neighbor1” 41, “neighbor2” 42, and “neighbor3” 43.Neighbor1 41 is clockwise from neighbor0 40, neighbor2 42 is clockwisefrom neighbor1 41, and neighbor3 43 is clockwise from neighbor2 42.

Referring to FIGS. 3A and 3B, the neighbor0 s 40 of four computers 12,13, 14, 15 point to the logical center 10 of the collection. Theneighbor2 s 42 of these computers 12, 13, 14, 15 point to four morecomputers 16, 17, 18, 19, 20, 21, 22, 23 and so on.

The neighbor2 42 to neighbors 40 configuration of the computersemanating from the logical center 10 of the collection may be consideredradials 26. The radials 26 pass through the computers at the vertices ofthe concentric quadrilaterals. The neighbor0 s 40 of computers on aradial point toward the logical middle of the collection of computers.The neighbor2 s 42 of computers on a radial point toward the collectionedge 30.

The neighbor1 41 of every computer on a radial 26 point to a line ofneighbor2 42 to neighbor0 40 relationships which form indirect radials27. The neighbor0 s 40 of computers on an indirect radial 27 pointtoward a radial 26. The neighbor2 s 42 of computers on an indirectradial 27 point toward the collection edge 30. Generally, the neighborrelationships are used for logically organizing the computers, while theradials 26 and indirect radials are used for disseminating informationthroughout the collection of computers.

A typical embodiment of the invention in a hexagonal configuration isillustrated in FIG. 4. As will be appreciated by persons of ordinaryskill in the art, the hexagonal configuration possesses six radials 26emanating from the logical center 10 of the collection, while indirectradials 27 generally emanate from a neighbor 2 (out of a total of sixneighbors) of every computer on a radial 26. Although the invention isdescribed in connection with a quadrilateral or hexagonal configuration,configurations with any even plurality of sides are possible inaccordance with the invention. Three dimension configurations are alsopossible. The more sides in the configuration, the more states exist inmanaging the collection of computers and the faster the broadcast andsearch of the entire collection may be performed. In any event, it willbe recognized that, among other things, the orientation of the indirectradial depends on the particular configuration.

Operation

The creation of one embodiment of the invention is shown in FIGS. 5A,5B, 5C, 6, 7A and 7B. The embodiment creates a logical organization inwhich each and every computer in the collection appears to be at the topof a hierarchy formed by concentric polygons. For purposes of describingthe invention, the logical middle 10 of the collection of computerscorresponds to the geometrical center, while the top computer 11 in thehierarchy represents a location at which a search or broadcastoriginates. As a result, the top computer 11, at any given time, changesbased on which computer in the overall hierarchy is acting as a sourceof a broadcast, search, or other dissemination of information throughoutthe network or a portion thereof. FIG. 5A illustrates a hierarchyemanating from the top computer 11 in the hierarchy through a collectionof computers 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 organizedinto concentric squares. In the example illustrated by FIG. 5A, the topcomputer 11 in the hierarchy is also the logical middle 10 of thecollection of computers.

In the case of the quadrilateral configuration, the number of computersin the concentric squares increases by four from concentric square toconcentric square. The first square surrounding the top computer 11 inthe hierarchy contains four computers 12, 13, 14, 15. The nextconcentric square contains eight computers 16, 17, 18, 19, 20, 21, 22,23. The next concentric square contains twelve computers, and so on.

FIG. 5B illustrates a hierarchy emanating from the top computer 11 inthe hierarchy through a collection of computers 12, 13, 14, 15, 16, 17,18, 19, 20, 21, 22, 23 organized into concentric squares. In the exampleillustrated by FIG. 5B, the top computer 11 in the hierarchy is not thelogical middle 10 of the collection of computers.

The number of computers in the concentric squares increases by four fromconcentric square to concentric square. The first square surrounding thetop computer 11 in the hierarchy contains four computers 12, 13, 14, 15.The next concentric square contains eight computers 16, 17, 18, 19, 20,21, 22, 23. The next concentric square (not fully shown) contains twelvecomputers, and so on.

FIG. 5C illustrates a hierarchy emanating from the top computer 11 inthe hierarchy through a collection of computers 12, 13, 14, 15, 16, 17,18, 19, 20, 21, 22, 23 organized into concentric squares. In the exampleillustrated by FIG. 5C, the top computer 11 in the hierarchy resides onthe collection edge 30.

The number of computers in the concentric squares increases by four fromconcentric square to concentric square except computers residing on thecollection edge 30 which do not possess a complete square of neighbors.In this case, therefore, the first square surrounding the top computer11 in the hierarchy contains two computers 12, 13. The next concentricsquare contains five computers 16, 17, 18, 19, 20. The next concentricsquare (not fully shown) contains six computers. The next concentricsquare contains nine computers, and so on.

Message Broadcast

One-to-many message broadcast may efficiently be performed by thecollection of computers as each computer passes the broadcast to eitherone or two more computers in the next concentric polygon. FIG. 6illustrates the rapid increase in number of computers reached with theaddition of each concentric polygon.

Referring again to FIG. 5A illustrates how a broadcast operation may usethis configuration to relay a message from the top of the hierarchy outthrough the concentric squares of computers. The message is initiallypassed from the top computer 11 in the hierarchy to the four computersin the surrounding concentric square 12, 13, 14, 15. In the exampleillustrated by FIG. 5A, the top computer 11 in the hierarchy is also thelogical middle 10 of the collection of computers.

The message is then passed by the computers at the four corners of thesquare 12, 13, 14, 15 to the eight computers in the surroundingconcentric square 16, 17, 18, 19, 20, 21, 22, 23. The message is thenpassed to the computers in the next concentric square and so on.

Referring again to FIG. 5B illustrates how a broadcast operation may usethis configuration to relay a message from the top of the hierarchy outthrough the concentric squares of computers. The message is initiallypassed from the top computer 11 in the hierarchy to the four computersin the surrounding concentric square 12, 13, 14, 15. In the exampleillustrated by FIG. 5B, the top computer 11 in the hierarchy is not thelogical middle 10 of the collection of computers.

The message is then passed by the computers at the four corners of thesquare 12, 13, 14, 15 to the eight computers in the surroundingconcentric square 16, 17, 18, 19, 20, 21, 22, 23. The message is thenpassed to the computers in the next concentric square and so on.

Referring again to FIG. 5C illustrates how a broadcast operation may usethis configuration to relay a message from the top of the hierarchy outthrough the concentric squares of computers. In the example illustratedby FIG. 5C, the top computer 11 in the hierarchy resides on thecollection edge 30. Computers residing on the collection edge 30 do notpossess a complete square of neighbors.

The message is initially passed from the top computer 11 in thehierarchy to the two computers 12, 13 in the 15 surrounding butincomplete concentric square. The message is then passed to the fivecomputers 12, 13, 14, 15, 16 in the surrounding but incompleteconcentric square. The message is then passed to the computers in thenext surrounding but incomplete concentric square and so on.

As can be seen in both FIGS. 5B and 5C, there is a possibility that oneor more computers will be orphaned (e.g., computer 17 in FIG. 5C), atleast with respect to a message that does not originate from a topcomputer 11 at the logical middle 10 of the collection of computers. Theexistence of such orphaned computers, however, does not create a problemin most applications. Preferably, although not necessarily, a broadcastwill originate from a top computer 11 that is at the logical middle ofthe collection of computers. Thus, the broadcast will reach all of thecomputers in the collection. On the other hand, messages that originatefrom a top computer 11 that is not at the logical middle 10 frequentlydo not need to reach all of the computers in the collection. Forexample, a search for a specified file or application normally does nothave to be exhaustive because there is often sufficient redundancy in acomputer network to locate a subject of a search without querying everycomputer in the network.

Searching the Collection of Computers for Content

A search of content residing on computers in the collection may beperformed if the message passed through the hierarchy contains searchparameters and the network address of the requesting computer. Themessage will radiate through the hierarchy causing each computer in thecollection to search its local content. When a computer being searchedfinds a match to the searched content, that computer contacts thenetwork address of the requesting computer and identifies the networkaddress where the content is located.

Locating a Computer by a Name or Other Identifying Characteristic.

A computer in the collection of computers may be located by a name orother identifying ‘characteristic if the message passed through thehierarchy contains the name or other identifying characteristic and thenetwork address of the requesting computer. The message will radiatethrough the hierarchy causing each computer in the collection to comparethe name or other identifying characteristic to its own name or otheridentifying characteristic.

Initially Creating the Collection of Computers

The collection of computers must begin with a single computer which willbe the initial logical middle 10 of the collection of computers. Thenext four additions to the collection of computers will constitute theneighbor0 40, neighbor1 41, neighbor2 42, and neighbor3 43 neighbors ofthe logical middle 10 of the collection of computers.

Adding Additional Computers to the Collection of Computers

In order to become part of the collection of computers, a computer mustfirst find another computer which is part of the collection ofcomputers.

A computer can find to the collection of computers using severaltechniques including but not limited to:

-   -   (a) Trying to attach to a known list of available computers in        the collection of computers.    -   (b) Trying to attach to a computer from a list of computers with        which this computer has previously communicated.    -   (c) Seeking a computer connected to the collection of computers        by broadcasting queries to network addresses created from an        algorithm such as a random number generator.

FIG. 7A illustrates following a radial 26 from the found computer 28 tothe collection edge 30 to attach a new computer 32. FIG. 7B illustratesfollowing an indirect radial 27 from the found computer 28 to thecollection edge 30 to attach a new computer 32. When a new computer 32locates a computer belonging to the collection of computers, the foundcomputer 28 (see FIG. 7A) will reside either on a radial 26 or indirectradial 27 (FIG. 7B). The neighbor2 42 of the found computer 28 willpoint toward the collection edge 30. By following the found computer's28 neighbor's neighbor2 s 42 one after another, the collection edge 30may be located. The new computer 32 is attached to the collection ofcomputers at the collection edge 30.

Self Organizing a Hierarchy

The collection of computers may be searched more rapidly if it maintainsitself as a symmetrical compact shape such as that illustrated in FIG.8A rather than a collection of long thin strings as illustrated in FIG.8B. For example, a message can be broadcast to all 25 members of thecollection of computers illustrated in FIG. 8A within three hops fromthe logical middle 10 of the collection of computers. However a messagerequires fourteen hops to be fully broadcast to the members of thecollection of computers illustrated in FIG. 8B.

To maintain symmetrical compactness of the collected computers, eachcomputer in the collection follows a goal seeking behavior illustratedin FIGS. 9A to 9H and generally defined as:

-   -   (a) Orbit counter clockwise at the same level of concentric        polygon until another computer is encountered;    -   (b) Decay inward until another computer is encountered.

The result of the above two rules applied by each computer in thecollection will result in the creation of a logical network in the shapeof a near perfect quadrilateral (or other polygon, depending on theconfiguration).

Self Organizing States

In the preferred embodiment, each unit follows the goal seeking behaviorillustrated in FIGS. 9A to 9L through the logic of a state machine. Astate machine is a logical mechanism that defines the existence of aplurality of physical or logical states of being and the occurrencesnecessary to change the mechanism from one state of being to another.

For purposes of clarity, neighbor0 40 may be referred to as NO.Similarly neighbor1 41 may be referred to as N1, neighbor2 42 may bereferred to as N2, and neighbor3 43 as N3. In some states, both theexistence of a neighbor and existence of a neighbor's neighbor determinethe state. In such instances, for clarity, the neighbor0 of neighbor0 isreferred to as N00. Similarly the neighbor2 of neighbor1 is referred toas N12.

FIGS. 9A to 9D illustrate the state diagram of the goal seeking behaviorof an individual computer relative to the collection of computers ofwhich it is a part. In particular, FIG. 9A to 9D exemplify the possiblestate transitions at least for a quadrilateral configuration. Thesestates, however, relate only to the logical organization of thecomputers with respect to the logical middle 10 and not to the identityor location, at any particular time, of the top computer 11.

For example, each computer in the collection of computers may exist inone of the following states based on the existence and state of itsneighbor units and its proximity to a radial 26.

State 1 (illustrated in FIG. 9F)—The computer is searching for a foundcomputer 28 in the collection of computers. Three strategies are used:

(a) Search a pre existing list of network addresses of computers knownto belong to the collection of computers.

(b) Search a cache of network addresses of computer with which thesearching unit communicated when previously connected to the collectionof computers.

Use a brute force search of all possible network addresses of computers.In an embodiment using Internet addresses, the search will be made bygenerating random 32-bit numbers corresponding to Internet Protocol (IP)addresses and excluding the ranges of non routable IP addresses.

The searching computer confirms location of a computer in the collectionof computers by executing a handshake protocol consisting of thefollowing exchange:

(a) Searching Unit—“Are you connected to the collection of computers?”

(b) Queried Unit—“Yes I am, no I am not, or I don't understand.”

When the searching computer locates the collection of computers, itsstate becomes State 2.

State 2 (illustrated in FIG. 9C)—The computer has located the collectionof computers and is attempting to locate the collection edge 30. Thecomputer follows the neighbor2 42 neighbor links of the found computer28 to locate the next closest computer to the collection edge 30. Thecomputer will continue to follow the neighbor2 42 neighbor links ofsuccessive neighbors until a neighbor is found with no neighbor2 42link. A neighbor without a neighbor2 42 link resides on the collectionedge 30.

State 3 (illustrated in FIG. 9H)—The computer is located on thecollection edge 30 and on a radial 26. Since the computer is located onthe collection edge 30, the computer's neighbor2 42 does not exist.Furthermore, as illustrated in FIG. 9H the neighbor01 position isvacant.

At the first opportunity, the computer will move into the neighbor01position thereby moving closer to the logical middle 10 of thecollection of computers.

State 4 (illustrated in FIG. 9I)—The computer is located on thecollection edge 30 and therefore the computer's neighbor2 42 does notexist. The computer is not located on the radial, but is touching it.The computer's neighbor1 41 does not exist.

At the first opportunity the computer will move into the neighbor01position thereby moving closer to the logical middle 10 of thecollection of computers.

State 5 (illustrated in FIG. 9J)—The computer is located on an indirectradial 27. Neighbor1 41 does not exist. Neighbor2 42 does not exist, andthe neighbor01 position is filled.

At the first opportunity the computer will move onto the indirect radial27 behind the neighbor01 position thereby moving closer to the logicalmiddle 10 of the collection of computers.

State 6 (illustrated in FIG. 9K)—The computer is located on an indirectradial 27. Neighbor1 41 does not exist. Neighbor2 42 does not exist. Theneighbor01 position is vacant.

At the first opportunity the computer will move into the neighbor01position.

State 7 (illustrated in FIG. 9L)—The computer is located on an indirectradial 27, but its Neighbor1 41 is a radial 26. Neighbor2 42 does notexist.

At the first opportunity the computer will move onto the radial 26behind the neighbor01 position.

State 8 (illustrated in FIG. 9M)—The computer is located on an indirectradial 27. The N12 position is vacant.

At the first opportunity the computer will move into the N12 position.

State 9 (illustrated in FIG. 9N)—The computer is located on an indirectradial 27. Neighbor1 41 exists and Neighbor1 41 is on a radial 26.

This is a stable state. No movement is possible without other neighborsmoving first.

State 10 (illustrated in FIG. 9O)—The computer is located on a radial26. Either Neighbor1 41 or Neighbor2 42 exist preventing movement.

This is a stable state. No movement is possible without other neighborsmoving first.

State 11 (illustrated in FIG. 9P)—The computer is located on an indirectradial 27. Either Neighbor2 42 or N12 exist preventing movement. Oneneighbor must exist to prevent movement.

This is a stable state. No movement is possible without other neighborsmoving first.

State 12 (illustrated in FIG. 9Q)—The computer is located on a radial26. Neighbor0 40 is vacant. Either neighbor1 41 or neighbor3 43 exist sothere is a way to link to the neighbors of the missing neighbor0 40.

At the first opportunity, the computer will move into the vacantneighbor0 40 position.

State 13 (illustrated in FIG. 9R)—The computer is located on an indirectradial.27 but is touching a radial 26. Neighbor0 40 is vacant. Eitherneighbor1 41 or neighbor3 43 exist so there is a way to link to theneighbors of the missing neighbor0 40.

At the first opportunity, the computer will move into the vacantneighbor0 40 position.

State 14 (illustrated in FIG. 9S)—The computer is located on an indirectradial 27. Neighbor0 40 is vacant. Either neighbor1 41 or neighbor3 43exist so there is a way to link to the neighbors of the missingneighbor0 40.

At the first opportunity, the computer will move into the vacantneighbor0 40 position.

State 15 (illustrated in FIG. 9T)—The computer is located on an indirectradial 27. Neighbor0 40 exists. Neighbor1 41 is vacant. Neighbor2 42 isvacant. Neighbor 01 is vacant.

At the first opportunity, the computer will move into the vacantneighbor01 position.

Bandwidth Availability Sorting

After entering one of the stable states, each computer will compare itsavailable network bandwidth with that of its Neighbor0 40. If thecomputer's available network bandwidth is greater than that of itsNeighbor0 40, the computer and its Neighbor0 40 will swap places in thecollection of computers.

The effect of the computers swapping places is that, the collection ofcomputers becomes sorted by available network bandwidth. The computerswith the greatest amount of available network bandwidth will be closestto the logical middle 10 of the collection of computers.

Failure Recovery

The collection of computers can rebuild the connections necessary forbroadcast and searching in the event a computer in the collectionbecomes disabled by a hacking attack or ceases functioning due totechnical or network problems.

FIG. 10A illustrates the collection of computers following the disablingof several computers. The disabled computers 29 are unable to pass alongbroadcast messages and must therefore be replaced. FIG. 10B through FIG.10C illustrate the process by which the remaining computers in thecollection reorganize the remaining computers.

Once the disabled computers have been removed from the interior of thecollection of computers, the reorganization will continue to rebuild thesymmetrical compactness illustrated in FIGS. 9F to 9O.

Computer Locking

Each computer in the collection of computers functions as an autonomousunit asynchronously related to its neighbors. In order to synchronizethe movements of computers to different positions in the collection, itis necessary to prevent race conditions or ambiguous situations whichcould occur should a computer make a decision based on the states of itsneighbors and move its position at the same time the neighbor's statesare changing.

For this reason a computer in the collection will lock its neighborsfrom making any moves until it:

(a) Senses the state of its neighbors.

(b) Decides if a move is necessary.

(c) Performs the move.

The lock has a timeout to prevent a never ending lock should the lockingcomputer be disabled in some way before releasing the lock.

Limiting Broadcast or Searches

In some cases it may be desirable to limit message broadcast or contentsearches to a subset of the collection of computers. In that case, thebroadcast or search may be limited by specifying the number ofconcentric rings to search relative to the computer requesting thebroadcast or search.

Bandwidth Throttling

If all computers in the collection of computers do comprehensive messagebroadcasts or content searches, the communications means logicallyconnecting the computers may become congested. Any computer in thecollection of computers can view the sum total of the communicationstraffic between all computers. Should the communications traffic beginto approach to capacity of the logical communications channel a means ofreducing the traffic must be considered.

The following technique is “fair” to each user of the collection ofcomputers, rewards efficient use, and penalizes overused. Before eachbroadcast or search is initiated, each and every computer in thecollection of computers will perform the following before performing abroadcast or search:

(a) Measure the logical communication channel bandwidth utilization.

(b) If the utilization is below a predetermined desired threshold,proceed with the broadcast or search, otherwise,

(c) Calculate the time since the last search.

(d) If the time since the last search is less than a predeterminedamount, insert a predetermined delay in front of the request forbroadcast or search which is related to the amount the communicationschannel bandwidth utilization exceed the predetermined desiredthreshold.

The above algorithm will assure that broadcast and search performancewill degrade gracefully under heavy use of the collection of computers.

Caching Computers

If the collections of computers large enough and search demands frequentenough to fill the logical communication channel bandwidth, a moreefficient use of bandwidth is possible by defining a subset of thecollection of computers to perform a caching function. The computerschosen to perform the caching function are those with faster networkconnections.

FIG. 11 illustrates the preferred embodiment of the cachingorganization. In FIG. 11 the caching computers 33 are organized into acollection of computers similar to the collection of non-cachingcomputers shown in FIG. 2. Each caching computer 33 is the logicalmiddle of a collection of computers. As such, the caching computers 33and the underlying collections of computers represent a hierarchy withina hierarchy or, in an alternative way of looking at it, a simple type ofthree dimensional configuration. Each caching computer 33 caches thecontent index and name or other identifying characteristic of eachcomputer in the collection of computers which surround the cachingcomputer 33.

Each caching computer 33 is also a member of the collection of cachingcomputers. The collection of caching computers self organizes itself sothat the computer with the most available network bandwidth resides atthe logical middle 10 of the collection of caching computers.

Each caching computer in the collection of caching computers comparesits available network bandwidth with the network bandwidth of itsneighbor nearer the logical middle of the collection of cachingcomputers. If the caching computer possesses more available networkbandwidth than its neighbor, the computer and its neighbor swappositions in the collection of caching computers.

Each caching computer in the collection continuously performs thecompare and swap operation, such that the collection of caching computeris always sorted with the computer having the most available networkbandwidth located at the logical middle of the collection of cachingcomputer and each concentric polygon contains computers withsuccessively less available network bandwidth.

Adding a Caching Computer

A caching computer is added to the collection of caching computers inmuch the same way as a computer is added to the collection of computersas described in Self Organizing a Hierarchy and illustrated in FIGS. 9Ato 9T.

A new caching computer can find the collection of caching computersusing several techniques including but not limited to:

(a) Trying to attach to a known list of available caching computers inthe collection of caching computers.

(b) Trying to attach to a caching computer from a list of cachingcomputers with which this computer has previously communicated.

(c) Seeking a computer connected to the collection of caching computersby broadcasting queries to network addresses created from an algorithmsuch as a random number generator.

When a new caching computer locates a computer belonging to thecollection of caching computers the found caching computer will resideeither on a radial 26 or an indirect radial 27. The tail 41 of the foundcaching computer 28 will point toward the collection edge 30. Byfollowing the found caching computer's 28 neighbor's tail to head oneafter another, the collection edge 30 may be located. The new cachingcomputer is attached to the collection of caching computers at the edge30.

To maintain symmetrical compactness of the collected computers, eachcomputer in the collection follows a goal seeking behavior asillustrated in FIGS. 9A to 9T:

-   -   (a) Orbit counter clockwise at the same level of concentric        polygon until another computer is encountered;    -   (b) Decay inward until another computer is encountered.

A newly added caching computer will have a large amount of availablenetwork bandwidth, and as such will swap positions with its neighborsuntil it reaches the logical middle of the collection of cachingcomputers. Preferably, a newly added computer will be designated as acaching computer based on whether the newly added computer possesses anavailable amount of bandwidth greater than some threshold. Newly addedcomputers that do not possess an amount of bandwidth over the thresholdare added as non-caching computers.

Adding a Non-Caching Computer

In a caching system, a new computer 32 locates the collection ofcomputers and then follows the head to toe links until it reaches thelogical middle 10 of its collection of computers. The logical middlewill be a caching computer that also belongs to the collection ofcaching computers.

The new computer 32 will follow the head to toe links of the collectionof caching computers until it reaches the logical middle of thecollection of caching computers.

The new computer 32 will provide the caching computer with its networkaddress, the index of its content, and its name or other identifyingcharacteristics. The new computer 32 will then follow a radial 26 of thecollection of non-caching computers attached to the logical middle ofthe collection of caching computers. The new computer 32 will attachitself to the edge 30 of the collection of computers and begin theself-organizing logic to seek a position.

Self Balancing Cache

Due to the bandwidth availability comparison logic, the computer at thelogical middle of the collected caching computers will always be thecaching computer with the most available bandwidth. New non-cachingcomputers will always be added to the collection of non-cachingcomputers attached to this caching computer.

As more non-caching computers are added to the caching computer with themost available bandwidth, it will eventually have less availablebandwidth than another caching computer in the collection of cachingcomputers and be replaced at the middle of the collection of cachingcomputers by a computer with more bandwidth available.

In the above fashion, the collection of caching computers will alwaysmaintain an optimally balanced distribution of non-cached computersattached to each caching computer.

Unavailable Computer

From time to time, a caching computer will poll each of the computers inits collection of non-caching computers. When a computer that is amember of a collection of computers headed by a caching computer becomesunavailable or unusable through some sort of failure, the cachingcomputer will remove the unavailable computers cached content index,name, and other identifying characteristics.

Unavailable Caching Computer

From time to time, a caching computer will fail to respond tocommunications from non-caching computers in its collection ofcomputers. The caching computer will be replaced by one of thenon-caching computers in its collection of computers using thealgorithms illustrated in FIGS. 9A to 9T.

Should there be no more non-caching computers available in the disabledcaching computers collection of computers, the collection of cachingcomputers will fill in the void using the logic illustrated in FIGS. 9Ato 9T.

Auto-Update

The invention embodies a feature by which a computer compares itsversion of software that controls the collection of computers to that ofthe neighbor 40, 41, 42, 43 with which it is preparing to communicate.If the computer requesting the communication possesses a more recentversion of the software that controls the collection of computers, thenthat version of software is transferred to the neighbor 40, 41, 42, 43.

If the neighbor 40, 41, 42, 43 to which communications is beingrequested posses a more recent version of the software that controls thecollection of computers, then the more recent version of the software istransferred from the neighbor 40, 41, 42, 43 to the computer requestingthe communications.

In this fashion, a software update applied to any computer in thecollection of computers will propagate through the collection ofcomputers at about the same rate as a message broadcast.

Distributing Executables Across the Collection of Computers

It is possible using the auto-update mechanism described above todistribute executable programs to all computers in the collection ofcomputers.

It is possible using the auto-update mechanism described above todistribute executable programs to a subset of all the computers in thecollection of computers by limiting the distribution to computers withina fixed number of concentric polygons of the computer initiating thedistribution.

The computers receiving executable programs using the auto-updatemechanism may be commanded to perform certain operations using theexecutable programs distributed using the auto-update mechanismincluding executing the programs to perform a calculation or otheroperation and returning a result to the computer initiating thedistribution of the executable program.

Broadcast of Streaming Media

One embodiment of the invention provides for the one to many broadcastof streaming media. Streaming media include but are not limited to WEBradio and corporate WEBcasts.

Current broadcast technology requires the originator posses a largeserver 44 and high speed network connection necessary to open therequired channel to each and every destination 45 as illustrated in FIG.12. Therefore a doubling of destinations requires a doubling of theoriginator's network bandwidth.

The invention offers an efficient means to broadcast streaming media bysharing the necessary bandwidth and computing power with eachdestination computer 45. FIG. 13 illustrates the streaming mediapossible with the collection of computers created by the invention.

The advantages of the invention over existing solutions are:

(a) The originator's network bandwidth need only be as large as thatnecessary for a single stream of the media.

(b) The number of destinations may be increased irrespective of thebandwidth of the originator's network connection.

(c) The number of destinations may be increased virtually without limit.

Making a Streaming Media Connection

A WEB radio station is an existing example of streaming media. Withcurrent technology, a user with a media player program contacts thestation's WEB page, provides the user's network address, and requests tobe connected to the station's streaming media server. The media serveropens a connection and begins sending the media information to theuser's media player at the user's network address. The media informationis virtually the same as that sent to every other user.

When using one embodiment of the invention, a user with a media playerprogram and a program implementing the invention contacts the station'sWEB page, provides the user's network address, and requests to beconnected to the station's streaming media server 44. The stationstreaming media server is using a version of the invention.

The media server directs the new user to the logical middle of thecollection of computers 10. The new user's computer 32 follows theprotocol described in FIGS. 9A to 9T to attach to the collection ofcomputers. Upon attachment to the collection of computers, the newcomputer 32 will begin receiving the streaming media from the neighborto which its head is attached.

When yet another computer is attached to the new computer 32, the newcomputer 32 will forward the streaming media to the added computer.

When a Computer Disconnects or Becomes Unavailable

When a computer in the collection of computers used to broadcaststreaming media disconnects or otherwise becomes unavailable, theinvention replaces the unavailable computer in the collection ofcomputers using the protocol illustrated in FIGS. 10A to 10C.

Bandwidth Requirements

Each computer in the collection of computers requires an availableoutbound network bandwidth the same as the inbound network bandwidth ofthe streaming media. The exceptions are computers which reside onradials 26 which require twice the available outbound bandwidth asinbound bandwidth.

ADVANTAGES OF THE INVENTION

The invention possesses the following advantages over the previous artinclude:

(a) The ability to broadcast a message from any computer in a collectionof computers to broadcast to the balance of the collection bydistributing the computing power and communications bandwidth requiredby the broadcast to the collection of computers.

(b) The ability of any computer in a collection of computers to searchfor content in a collection of computer by distributing the computingpower and communication bandwidth required by the search to thecollection of computers.

(c) The ability of any computer in a collection of computers to searchfor another computer in the collection of computers by a name or otheridentifying characteristic by distributing the computing power andcommunication bandwidth required by the search to the collection ofcomputers.

(d) The ability to self organize computers into a collection ofcomputers such that the computing power and communication bandwidth ofthe collection may be used to broadcast from one computer to the balanceof computers in the collection; such that the computing power andcommunication bandwidth of the collection may be used to search forcontent existing on the collection of computers; and such that thecomputing power and communication bandwidth of the collection may beused to locate a computer in the collection by name or other identifyingcharacteristic.

(e) The ability to self organize computers which possess transientnetwork addresses into a collection of computers such that the computingpower and communication bandwidth of the collection may be used tobroadcast from one computer to the balance of computers in thecollection; such that the computing power and communication bandwidth ofthe collection may be used to search for content existing on thecollection of computers; and such that the computing power andcommunication bandwidth of the collection may be used to locate acomputer in the collection by name or other identifying characteristic.

(f) The ability of an organized collection of computers to self repairitself after some computers become inoperative to an attack or technicalmalfunction.

Although a preferred embodiment of the method and apparatus of thepresent invention has been illustrated in the accompanying Drawings anddescribed in the foregoing Detailed Description, it is understood thatthe invention is not limited to the embodiment disclosed, but is capableof numerous rearrangements, modifications, and substitutions withoutdeparting from the spirit of the invention as set forth and defined bythe following claims.

1. A distributed computer network, comprising: a plurality ofprocessors, and a network communication medium for interconnecting theplurality of processors: wherein the plurality of processors furthercomprise a set of nodes having a predetermined set of parameters;wherein the set of nodes are logically arranged in a regular logicalgeometric pattern such that each node can operate as a logical centernode in a hierarchy of nodes; wherein the set of nodes includes a topnode; and, wherein the top node is changed in reaction to an initiationof a broadcast message.
 2. The distributed computer network of claim 1,wherein the network communication medium includes a physicalinterconnection between the plurality of processors unrelated to theregular logical geometric pattern.
 3. The distributed computer networkof claim 1, wherein each of the plurality of processors that receivesthe message forwards the message to a logically neighboring nodeprocessor.
 4. The distributed computer network of claim 1, wherein theregular logical geometric pattern of nodes includes the logical centernode connected to the set of nodes in a logical set of concentric ringsinterconnected by four diametrically opposed radials.
 5. The distributedcomputer network of claim 4, wherein the logical set of concentric ringsincludes a regular closed two dimensional polygonal configuration havingan even number of sides.
 6. The distributed computer network of claim 4,wherein the logical set of concentric rings includes a regular closedthree dimensional polygonal configuration.
 7. The distributed computernetwork of claim 4, wherein the regular logical geometrical pattern ofnodes includes at least one hole and a mobile node adjacent the hole andwherein the mobile node fills the hole by logical movement toward thelogical center node.
 8. The distributed computer network of claim 4wherein the regular logical geometric pattern includes a set ofconcentric rings surrounding the logical center node and a hole in theset of concentric rings and wherein a node in the set of concentricrings fills the hole by changing its logical position in the regularlogical geometric pattern.
 9. The distributed computer network of claim1 wherein the top node sends the broadcast message to each of the nodesin a radially expanding pattern within the regular logical geometricpattern.
 10. A distributed computer network comprising: a collection ofcomputers logically arranged such that a first computer of thecollection of computers is situated at a logical center of thecollection of computers, wherein a plurality of computers from thecollection of computers form a series of concentric polygons around thefirst computer; and wherein each computer in the collection of computerscan interchangeably operate as a top computer in a hierarchy ofcomputers based on the transmission of a message, said hierarchyincluding at least a subset of the collection of computers by: the topcomputer sending the message along each of a set of direct radials, eachdirect radial comprising a line of logically adjacent computers in thecollection of computers that logically extends radially from said topcomputer; and at least one lower level computer, of the collection ofcomputers, located on one of the set of direct radials furtherforwarding the message along an indirect radial of a set of indirectradials, each indirect radial comprising a line of logically adjacentcomputers in the collection of computers that logically extends radiallyfrom said at least one lower level computer but does not logicallyintersect any of the direct radials in the set of direct radials. 11.The distributed computer network of claim 10 wherein each computer inthe collection of computers not located on an outermost edge of thecollection of computers has a set of radials extending therefrom equalin number to the number of sides of each of the concentric polygons inthe series of concentric polygons.
 12. The distributed computer networkof claim 10, wherein each computer in the connection of computers isprogrammed to shift position in the series of concentric polygons to afirst position closer to the first computer when the first position isnot occupied and further is programmed to shift position in one of aclockwise direction and a counterclockwise direction, to a secondposition when the second position is not occupied.
 13. The distributedcomputer network of claim 12, wherein each computer in the collection ofcomputers is further programmed to prevent a set of neighboringcomputers from shifting positions.
 14. The distributed computer networkof claim 10 wherein each computer in the collection of computers isfurther programmed to store information relating to each of a pluralityof subordinate computers logically connected to and located around therespective computer.
 15. The distributed computer network of claim 14wherein a top computer in the collection of computers is programmed toinitiate a search for a set of content on the plurality of subordinatecomputers by sending the message.
 16. The distributed computer networkof claim 10 wherein the message is selected from the group consisting ofbroadcast data, a search parameter, and update information.
 17. Thedistributed computer network of claim 10 wherein, other than the topcomputer, each computer in the collection of computers on a directradial forwards the message to two other computers and each computer inthe collection of computers not on a direct radial forwards the messageto one other computer.
 18. The distributed computer network of claim 17wherein each of the computers in the collection of computers isforwarded the message only once.
 19. A method for communicating in acomputer network, comprising: logically arranging a plurality ofcomputers around a first computer situated at a logical center of theplurality of computers; selecting a top computer from the plurality ofcomputers based on initiation of a message; sending the message from thetop computer to a set of logically adjacent subordinate computers thatproceed in a logical pattern radially from the top computer; and,forwarding the message from at least one subordinate computer, along atleast one series of logically adjacent computers that logically extendsradially from the at least one subordinate computer but that does notintersect any of the series of logically adjacent subordinate computersthat proceed in a logical pattern radially from the top computer. 20.The method of claim 19, wherein the step of logically arrangingcomprises the further step of establishing a plurality of logicallyneighboring computers for each computer, wherein each computer has nomore than a predetermined number of logically neighboring computers, andwherein the plurality of computers are evenly distributed around thefirst computer.
 21. The method of claim 19, wherein the computer networkincludes a second computer with a higher bandwidth and a third computerwith a lower bandwidth, further comprising the step of switching thepositions of the second computer and the third computer to move thethird computer away from the logical center of the plurality ofcomputers with respect to the second computer.
 22. The method of claim19, further comprising the step of delaying sending of the message fromthe top computer if a bandwidth utilization of the plurality ofcomputers is above a predetermined threshold.
 23. A method for logicallyconfiguring a collection of computers, comprising: selecting a firstcomputer from the connection of computers to serve as a logical centerof the collection of computers; selecting a second computer from theconnection of computers to serve as a top computer in the connection ofcomputers; adding computers to the collection of computers to logicallyconfigure the computers into a plurality of concentric polygons, whereineach added computer operates to: find a computer in the collection ofcomputers; follow one of a radial and an indirect radial that includesthe found computer to a collection edge, said radial comprising a seriesof logically adjacent radial computers that logically extend from thelogical center, and said indirect radial comprising a series oflogically adjacent computers that logically extend from one of theradial computers, forming a concentric set of logical levels, whereinthe collection edge comprises a logically outermost computer on said oneof the radial and the indirect radial; and logically attach to acomputer in the collection of computers on the collection edge.
 24. Themethod of claim 23, further comprising the step of moving each addedcomputer to a first neighboring logical position that is logicallycloser to the logical center of the collection of computers if the firstneighboring logical position is not occupied.
 25. The method of claim24, further comprising the step of rotating each added computer to asecond neighboring logical position on the same concentric logical levelas the added computer if the second neighboring logical position is notoccupied.
 26. The method of claim 25, wherein the step of rotatingcomprises rotating in a preselected one of a clockwise and acounterclockwise direction.
 27. The method of claim 25, furthercomprising the step of preventing other computers from moving into thefirst neighboring logical position and from moving into the secondneighboring logical position during said steps of moving and rotating.28. The method of claim 23, wherein each of the plurality of concentricpolygons has the same number of sides and has an even number of sides.29. A method for logically configuring a collection of computers,comprising: selecting a computer to serve as a logical center of thecollection of computers; selecting a computer to serve as a top computerin the collection of computers; arranging computers from the collectionof computers such that the collection of computers is logicallyconfigured to form a set of successively higher concentric polygonlevels around the logical center; adding a computer to the collection ofcomputers; logically connecting the added computer to a computer in thecollection of computers in a logical position, located at a collectionedge, wherein the collection edge comprises a logical outer edge of thecollection of computers and forms a concentric polygon level around theplurality of concentric polygon levels; and repeating the steps of:changing the logical location of the added computer to a next lowerconcentric polygon level if a computer in the collection of computers isnot situated at a logical position that neighbors the added computer atthe next lower concentric polygon level; and changing the logicallocation of the added computer to a logically adjacent position on acurrent concentric polygon level of the added computer if a computer inthe collection of computers is not situated at said logically adjacentposition.
 30. The method of claim 29, further comprising the step ofsending a message from the top computer of the collection of computersto each of a plurality of neighboring radial computers, each neighboringradial computer forwarding the message to another neighboring radialcomputer and to a neighboring indirect radial computer, such that themessage is forwarded to each computer in the collection of computersonly once.
 31. The method of claim 29, wherein the collection ofcomputers comprises one of a collection of caching computers and acollection of non-caching computers, wherein each caching computerstores information relating to a corresponding collection of cachingcomputers.
 32. A computer network, comprising: a collection of cachingcomputers logically arranged such that a first caching computer issituated at a logical center of the collection of caching computers,wherein the remaining caching computers are logically arranged to format least one concentric polygon around the first caching computer; atleast one collection of non-caching computers, each respectivecollection of non-caching computers logically arranged to form aplurality of successively higher concentric polygon levels around arespective caching computer that stores information relating to therespective collection of non-caching computers; at least onecommunication medium providing a physical interconnection between thecaching computers in the collection of caching computers and thenon-caching computers in the at least one collection of non-cachingcomputers, said physical interconnection unrelated to said logicalarrangements; and a least one of the collection of caching computers andthe at least one collection of non-caching computers logically arrangedsuch that a message originating at a top computer is forwarded alongeach of at least one radial, each said radial comprising a line oflogically adjacent computers that logically extends radially from thetop computer, and wherein a plurality of computers forming the radialfurther forward the message along an indirect radial, each said indirectradial comprising a line of logically adjacent computers that logicallyextends radially from a corresponding one of the plurality of computersand that does not intersect any of the at least one radial.
 33. Thecomputer network of claim 32, wherein each caching computer operates todetermine whether its available bandwidth is greater than an availablebandwidth of a logically adjacent caching computer logically closer tothe first caching computer and to switch positions with the logicallyadjacent caching computer when the available bandwidth of the cachingcomputer is greater than the available bandwidth of the logicallyadjacent caching computer.
 34. The computer network of claim 33, furthercomprising at least one added non-caching computer, wherein the addednon-caching computer logically attaches to a collection of non-cachingcomputers associated with a caching computer currently situated at thelogical center of the collection of caching computers.
 35. The computernetwork of claim 32, wherein the information relating to the respectivecollection of non-caching computers comprises an index of data stored onthe respective collection of non-caching computers.
 36. The computernetwork of claim 32, further comprising at least one added computer,wherein the at least one added computer is assigned as one of a cachingcomputer and a non-caching computer based on an available bandwidth ofthe at least one added computer.
 37. The computer network of claim 32,wherein the message comprises one of broadcast information and searchrequest data.
 38. A distributed computer network, comprising: acollection of computers; means for an added computer to locate thecollection of computers; means for the added computer to establish aconnection to the collection of computers; means for each computer inthe collection of computers, including the added computer, to establisha logical arrangement such that each computer in the collection ofcomputers acts interchangeably as a top computer in a logical hierarchy,wherein the logical hierarchy is adaptably based on a bandwidth sizeassociated with each computer in the connection of computers.
 39. Thedistributed computer network of claim 38, wherein the hierarchycomprises a set of member computers, a membership of which depends upona logical location of the top computer.
 40. The distributed computernetwork of claim 38, further comprising means for the top computer toinitiate a search for one of a specified computer and specified data.41. The distributed computer network of claim 40, wherein each computerin the collection of computers includes a searchable index of thecontents of the computer for facilitating said search.
 42. Thedistributed computer network of claim 38, further comprising means forthe top computer to broadcast information throughout the collection ofcomputers.
 43. The distributed computer network of claim 38, furthercomprising means to control a bandwidth utilization of the collection ofcomputers.
 44. The distributed computer network of claim 38, furthercomprising a plurality of lower level computers, wherein informationregarding the lower level computers is stored in a respective one of thecomputers in the collection of computers.
 45. The distributed computernetwork of claim 38, further comprising means for rebuilding a logicalarrangement of the collection of computers following a loss of at leastone computer from the collection of computers.
 46. The distributedcomputer network of claim 38, further comprising means for distributingsoftware updates throughout the collection of computers.
 47. Thedistributed computer network of claim 38, wherein each computer in thecollection of computers includes a dynamic physical address.
 48. Thedistributed computer network of claim 38, further comprising means forgenerating the logical arrangement substantially minimize logicaldistance between a logical center of the collection of computers and alogical collection edge.